package com.zdkj.subway.check.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 *tVM票款差异协查-票款差异明细表 SW_AU_TVM_MONEY_ASSIST
 */
@Data
public class SwAuTvmMoneyAssist {
//    @Id
//    @GeneratedValue(strategy = GenerationType.IDENTITY)
//    Integer id;
//    Integer relationid;
//    String lineCode;
//    String stationCode;
//
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    Date settleTime;
//    String tvmOrder;
//    BigDecimal tvmBillOrderMoney;
//    BigDecimal tvmUnloadMoney;
//    BigDecimal actualMoney;
//    BigDecimal handOutMoney;
//    BigDecimal diffMoney;
//    String boxCashType;
//    String assistInvestStatus;
//    String replyStatus;
//    String replaceStatus;
//    Integer replaceSourceId;
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    Date sendTime;
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    Date replyTime;
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    Date replaceTime;
//    String replyReason;
//    String replyContent;
//    Integer operatorId;
//    String operatorCode;
//    String problemSalePayment;
//    String problemRechargePayment;
//    String problemRefundPayment;
//    String state;
//    Integer creatorId;
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    Date createTime;


    /**
     * 唯一标识
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Integer id;
    /**
     * 分钱箱审核中的差异ID
     */
    Integer relationid;
    /**
     * 线路编码
     */
    String lineCode;
    /**
     * 车站编码
     */
    String stationCode;
    /**
     * 收入日期
     */
    String settleTime;
    /**
     * TVM编号
     */
    String tvmOrder;
//    BigDecimal tvmBillOrderMoney;
    /**
     * TVM卸载显示金额
     */
    BigDecimal tvmUnloadMoney;
    /**
     * 卸载实点金额（分）
     */
    BigDecimal actualMoney;
    /**
     * 手工清出金额（分）在加入票款差异协查时，从TVM票款差异分钱箱差异审核表带入
     */
    BigDecimal handOutMoney;
    /**
     * 补币金额（分）
     */
    BigDecimal supplementMoney;
    /**
     * 系统金额
     */
    BigDecimal systemMoney;
    /**
     * 差异金额（分）
     */
    BigDecimal diffMoney;
    /**
     * 钱箱类型（字典）
     */
    String boxCashType;
    /**
     * 协查状态
     */
    String assistInvestStatus;
    /**
     * 反馈状态
     */
    String replyStatus;
    /**
     * 替换状态
     */
    String replaceStatus;

    /**
     * 车站站长审核意见
     */
    String auditStationOpinion;

    /**
     * 车站审核审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date auditStationTime;

    /**
     * 车站审核人工号
     */
    String auditStationJobNo;

    /**
     * 车站审核人名称
     */
    String auditStationName;

    /**
     * 票务审核意见
     */
    String auditWorkshopOpinion;

    /**
     * 车间票务专业审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date auditWorkshopTime;

    /**
     * 车间票务专业审核人名称
     */
    @ExcelProperty(value = "车间票务专业", index = 8)
    @ApiModelProperty(value = "车间票务专业审核人名称")
    private String auditWorkshopName;
    /**
     * 车间票务专业审核人工号
     */
    @ExcelIgnore
    @ApiModelProperty(value = "车间票务专业审核人工号")
    private String auditWorkshopJobNo;

    /**
     * 部门票务专业名称
     */
    @ExcelProperty(value = "部门票务专业", index = 9)
    @ApiModelProperty(value = "部门票务专业名称")
    private String auditDeptName;
    /**
     * 部门票务专业审核人工号
     */
    @ExcelIgnore
    @ApiModelProperty(value = "部门票务专业审核人工号")
    private String auditDeptJobNo;
    /**
     * 部门票务专业审核意见
     */
    @ExcelIgnore
    @ApiModelProperty(value = "部门票务专业审核意见")
    private String auditDeptOpinion;
    /**
     * 部门票务专业审核时间
     */
    @ExcelIgnore
    @ApiModelProperty(value = "部门票务专业审核时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date auditDeptTime;

//    Integer replaceSourceId;
    /**
     * 协查点击下发时的下发时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date sendTime;
    /**
     * 机电反馈时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date replyTime;
    /**
     * 机电反馈时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date replaceTime;
    /**
     * 机电回馈原因（字典）
     */
    String replyReason;
    /**
     * 机电专业回馈详情
     */
    String replyContent;
    /**
     * 机电回馈状态
     */
    String jdReplyStatus;
    /**
     * 机电专业操作员ID（机电回馈人员）
     */
    Integer operatorId;
    /**
     * 机电专业操作员工号（机电回馈人员）
     */
    String operatorCode;
    /**
     * 客运回馈原因（字典）
     */
    String kyReplyReason;
    /**
     * 客运回馈详情
     */
    String kyReplayConent;
    /**
     * 客运回馈状态
     */
    String kyReplyStatus;
    /**
     * 客运回馈操作员ID（客运回馈人员）
     */
    Integer kyOperatorId;
    /**
     * 客运回馈操作员工号（客运回馈人员）
     */
    String kyOperatorCode;
    /**
     * 客运协查状态
     */
    BigDecimal replyActualMoney;
    /**
     * 回馈卸载实点金额
     */
    BigDecimal replyDsiplayMoney;
    /**
     * 回馈卸载显示金额
     */
    BigDecimal replyHandOutMoney;
    /**
     * 回馈手工清出金额
     */
    BigDecimal replySupplementMoney;
    /**
     * 选择原因
     */
    BigDecimal selectReason;
//    BigDecimal problemSalePayment;
//    BigDecimal problemRechargePayment;
//    BigDecimal problemRefundPayment;
    /**
     * 状态
     */
    String state;

    /**
     * 手工清出备注
     */
    String stationCleanRemark;
    /**
     * 创建人ID
     */
    int creatorId;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date createTime;

    /**
     * 卸载显示金额差异
     */
    BigDecimal diffUnloadDisplayMoney;
    /**
     * 协查补卸载金额
     */
    BigDecimal loadUnloadMoney;
    /**
     * 回馈补卸载金额
     */
    BigDecimal replyLoadUnloadMoney;
    /**
     * 补卸载金额差异
     */
    BigDecimal diffLoadUnloadMoney;
    /**
     * 补币金额差异
     */
    BigDecimal diffSupplementMoney;

    //2021-03-10
    /**
     * 客运协查状态
     */
    String kyAssistInvestStatus;

    @TableField(exist = false)
    LocalDateTime jdReplyDateTime;
    @TableField(exist = false)
    LocalDateTime sendDateTime;
    @TableField(exist = false)
    LocalDate settleDate;
    String delFlag;
    String invalidStatus;

    @TableField(exist = false)
    String operatorName;
    @TableField(exist = false)
    String kyOperatorName;
    @TableField(exist = false)
    String boxCashName;

    //2021-11-22
    /**
     * 下发人工号
     */
    String sendPersonCode;
    /**
     * 下发人名称
     */
    String sendPersonName;

	/*
	 协查下发类型，0：无 1：发设备部 2：发车站  3：发设备部和车站
	*/
	String assistCategory; 

	 //查询范围  station 车站（2，3）   jd:(1,3)
	@TableField(exist = false)
	String assistCategoryRole;
}
